package Demo1;

class Solution {
    // 方法1：临时数组法（时间O(n)，空间O(n)）
    public void rotate1(int[] nums, int k) {
        int n = nums.length;
        k %= n; // 处理k >= n的情况
        if (k == 0) return;

        int[] temp = new int[n];
        for (int i = 0; i < n; i++) {
            // 直接计算每个元素旋转后的最终位置
            temp[(i + k) % n] = nums[i];
        }
        System.arraycopy(temp, 0, nums, 0, n);
    }
    private void reverse(int[] nums, int start, int end) {
    while (start < end) {
        int temp = nums[start];
        nums[start] = nums[end];
        nums[end] = temp;
        start++;
        end--;
    }
}
}


